Notification of an upcoming live media program

ABSTRACT

Providing a notification of an upcoming live media program to a user including determining that the upcoming live media program is scheduled to start within a predefined amount of time that serves as an indication that the upcoming live media program is about to start, where the upcoming live media program has been automatically determined to be of interest to the user. A client device of the user is determined to be not connected to a service providing playback of the upcoming live media program and the program is not currently scheduled to be recorded for the user. Responsive to determining that the upcoming live media program is not currently scheduled to be recorded for the user, a notification is transmitted to the user that indicates that the upcoming live media program is about to start.

FIELD

Embodiments of the invention relate to the field of media processing,and more specifically to a notification of an upcoming live mediaprogram.

BACKGROUND

Users have few options for receiving reminders and/or schedulingrecordings of live media programs such as live TV shows. Most or liveprogram notifications are reminder based. Users typically set a reminderfor a specific TV schedule or program and the TV or over-the-top (OTT)application on their set-top box (STB) or mobile device notifies thembefore the scheduled start time (e.g., 10 to 15 minutes before thescheduled start time). When live program notifications are reminderbased, the reminder will be sent regardless of whether the user iswatching the live program. If the user is watching the live program, thereminder notification may be seen as an annoyance for the user. Also,users forget to set reminders.

The user has the option of scheduling a recording in the event that theuser is not able to watch the show when it airs. Typically the recordingmust be scheduled in advance. However, it is common for a user to forgetto schedule a recording in advance. Some services allow for shows to beautomatically recorded for a user based on that user voting (e.g.,Thumbs-up or Thumbs-down) against content. Thus, these services requireusers to actively provide data on a regular basis to let the system knowwhat they like and do not like. These services are neither dynamic noranalytics-driven based on the user's live program watching patterns.

SUMMARY

In an embodiment, a notification of an upcoming live media program istransmitted to a user. The upcoming live media program is determined tobe scheduled to start within a predefined amount of time that serves asan indication that the upcoming live media program is about to start,where the upcoming live media program has been automatically determinedto be of interest to the user. Responsive to determining that theupcoming live media program is scheduled to start within the predefinedamount of time, a determination is made that a client device of the useris not connected to a service providing playback of the upcoming livemedia program. Responsive to the determination that the client device ofthe user is not connected to the service providing playback of theupcoming live media program, a determination is made that the upcominglive media program is not currently scheduled to be recorded for theuser. Responsive to the determination that the upcoming live mediaprogram is not currently scheduled to be recorded for the user, anotification is caused to be transmitted to the user, where thenotification indicates that the upcoming live media program is about tostart.

Providing a notification of an upcoming live media program to a userincluding determining that the upcoming live media program is scheduledto start within a predefined amount of time that serves as an indicationthat the upcoming live media program is about to start, where theupcoming live media program has been automatically determined to be ofinterest to the user. A client device of the user is determined to benot connected to a service providing playback of the upcoming live mediaprogram and the program is not currently scheduled to be recorded forthe user. Responsive to determining that the upcoming live media programis not currently scheduled to be recorded for the user, a notificationis transmitted to the user that indicates that the upcoming live mediaprogram is about to start.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by referring to the followingdescription and accompanying drawings that are used to illustrateembodiments of the invention. In the drawings:

FIG. 1 illustrates an exemplary system for notifying a user of anupcoming live media program based on the history of media consumption ofthe user according to one embodiment;

FIG. 2 illustrates more detail of the notification service of FIG. 1according to an embodiment;

FIG. 3 is a flow diagram that illustrates exemplary operations fornotifying a user of an upcoming live media program according to anembodiment;

FIG. 4 is a flow diagram that illustrates exemplary operations fornotifying a user of an upcoming live media program according to anembodiment; and

FIG. 5 illustrates a block diagram for an exemplary data processingsystem 500 that may be used in some embodiments.

DESCRIPTION OF EMBODIMENTS

In the following description, numerous specific details such as logicimplementations, opcodes, means to specify operands, resourcepartitioning/sharing/duplication implementations, types andinterrelationships of system components, and logicpartitioning/integration choices are set forth in order to provide amore thorough understanding of the present invention. It will beappreciated, however, by one skilled in the art that the invention maybe practiced without such specific details. In other instances, controlstructures, gate level circuits and full software instruction sequenceshave not been shown in detail in order not to obscure the invention.Those of ordinary skill in the art, with the included descriptions, willbe able to implement appropriate functionality without undueexperimentation.

References in the specification to “one embodiment,” “an embodiment,”“an example embodiment,” etc., indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it is submitted that it is within the knowledge of oneskilled in the art to affect such feature, structure, or characteristicin connection with other embodiments whether or not explicitlydescribed.

Bracketed text and blocks with dashed borders (e.g., large dashes, smalldashes, dot-dash, and dots) may be used herein to illustrate optionaloperations that add additional features to embodiments of the invention.However, such notation should not be taken to mean that these are theonly options or optional operations, and/or that blocks with solidborders are not optional in certain embodiments of the invention.

In the following description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. It should beunderstood that these terms are not intended as synonyms for each other.“Coupled” is used to indicate that two or more elements, which may ormay not be in direct physical or electrical contact with each other,co-operate or interact with each other. “Connected” is used to indicatethe establishment of communication between two or more elements that arecoupled with each other.

A method and apparatus for automatically notifying a user of an upcominglive media program based on the history of media consumption of the useris described in an embodiment. A user of a service that providesplayback of live media programs watches content provided by the service(whatever the user wants to watch). This media consumption data islogged by an analytics component of the media service and used todetermine the media watching preferences of the user, such as the user'sfavorite or most watched shows or events. As an example, if the userwatches the same TV program of a TV series every week, the analyticsportion of the service may determine that the TV program is one of theuser's favorite shows to watch and is of interest to the user. When aprogram of interest is about to start (e.g., the program is scheduled tostart within a predefined time period, which may be less than or equalto 1 minute before the scheduled start time), the media servicedetermines whether a client device of the user that is capable ofplaying the program is connected to the service. In an embodiment, themedia service checks whether a persistent connection, such as aWebsocket connection, is established between the media service and aclient device of the user. If such a client device is not connected tothe media service, the media service checks whether a recording of theprogram has been scheduled for the user. If a recording of the programis also not scheduled, the media service causes a notification to besent to the user that indicates that the program of interest is about tostart. The notification may include an option for the user to record theprogram and/or to tune to the channel that will play the program. Themedia service may automatically schedule and start a recording of theprogram of interest.

FIG. 1 illustrates an exemplary system for notifying a user of anupcoming live media program based on the history of media consumption ofthe user according to one embodiment. The system includes the mediaservice 120 that provides service for the user 105 to view live mediacontent. Although not shown in FIG. 1, a network for live media mayinclude a live media backend that transmits live video to the clientdevice(s) 110. The live media may or may not go through the mediaservice 120. The client device(s) 110 connect to the media service 120.Some of the client device(s) 110 are a client computing device capableof receiving and playing live media programs such as a set-top box, amobile device (e.g., smartphone, tablet, wearable device) with anapplication for playing live media, a laptop or desktop computer with anapplication for playing live media and/or a browser to play live media.Other client device(s) 110 may be a client computing device that iscapable of receiving notifications of an upcoming live media program butare not capable of playing the live media program itself. For example, asmartwatch may be capable of receiving a notification of an upcominglive media program but may not be able to play the live media programitself.

The user 105 logs into 182 the media service 120. A client device mayautomatically login to the media service 120 upon being powered and aspart of its booting process (e.g., in situations where the client deviceis a set-top box). Alternatively, the user may be required to enter inlogin credentials on a client device to login to the media service 120(e.g., in situations where the client device is a mobile device or alaptop/desktop computer. In an embodiment, logging into the serviceincludes establishing a persistent connection 180 between a clientdevice and the media service 120. In an embodiment, the persistentconnection 180 is a Websocket connection that is connected to the mediaservice 120 upon logging into the media service 120. The Websocketconnection is torn down when the user logs out of the media service 120.

The media service 120 includes the session manager 130 that managessessions of users connected to the media service 120. For instance, whenthe user 105 logs into 182 the media service 120, the session manager130 assigns a session identifier and stores that session identifier forthe user 105 in the user database 135, which indicates that the user 105is logged into the media service 120. The session identifier is clearedwhen the user 105 is logged out of the media service 120, which occursif the user 105 chooses to log out of the media service 120 and mayoccur if the media service 120 times out the user 105 due to inactivity,for example.

After logging into the media service 120, the user 105 may use one ormore of the client devices 110 to watch live media content. Other typesof content may also be watched such as video on demand (VOD) content,recorded content, and/or over-the-top (OTT) content. Typically the user105 will watch whatever the user 105 wants to watch. The media service120 includes the analytics component 140 that is operable to collect 186user consumption data from media watched by the user 105. The userconsumption data may include data such as the watched media contentasset identifier, playback start time, playback stop time, playbackpause, playback stop, favorites made by the user, and any other actionperformed by the user via the media service 120; and may also includeinformation about the watched media such as genre, actors, director,writers, studio, etc.

The analytics component 140 of the media service 120 analyzes the userconsumption data and determines, from the user consumption data,program(s) of interest of the user. The list of the determinedprogram(s) of interest are stored in the media program of interestdatabase 145. A program of interest may be a program of a series inwhich the user regularly watches. As an example, if the user consumptiondata indicates that the user 105 watches the same TV program of a TVseries every week, the analytics component 140 may determine that the TVprogram is of interest to the user. A program of interest may be aprogram of a genre in which the user regularly watches. For example, ifthe user consumption data indicates that the user 105 regularly watchescooking competition shows, the analytics component 140 may determinethat a cooking competition show (which the user may or may not watch) isof interest to the user. As another example, if the user consumptiondata indicates that the user 105 regularly watches a sporting event, theanalytics component 140 may determine that the sporting event is ofinterest to the user. A program of interest may be a program with anactor, director, and/or writer in which the user regularly watches. Forexample, if the user consumption data indicates that the user 105watches TV programs and/or movies with a particular actor with somefrequency, the analytics component 140 may determine that an upcomingprogram with that actor is a program of interest for the user 105.

The media service 120 includes the notification service 160 that isoperable to manage notifying the user 105 of an upcoming live mediaprogram that has been determined to be of interest to the user 105 basedon the user consumption data of the user 105. FIG. 2 illustrates moredetail of the notification service 160 according to an embodiment. Thenotification service 160 takes as input the user session information 194(which indicates whether the user 105 is logged into the service and mayalso indicate what channel, if any, the user is currently tuned to, andmay indicate the type of client device that is logged in to theservice), the list of program(s) of interest 190, and the schedule ofmedia programs 192 provided by the media program schedule database 150that provides the schedule of when media programs are to start. When anupcoming live media program of interest is scheduled to start within apredefined amount of time that serves as an indication that the upcominglive media program of interest is about to start (e.g., the predefinedamount of time is typically less than or equal to 1 minute), thenotification service 160 determines, from the user session information194, whether a client device 110 of the user 105 is connected to themedia service 120. For example, with reference to FIG. 2, the programscheduler 220 of the notification service 220 determines whether aprogram of interest is about to start 225 based on the list ofprogram(s) of interest 190 and the schedule of media programs 192. Theprogram of interest that is about to start 228 is provided by theprogram scheduler 220 to the session module 230, which determineswhether a client device 110 of the user 105 is connected 235 to themedia service 120 based on the user session information 194.

If the client device 110 of the user 105 is connected to the mediaservice 120, the notification service 160 may further determine if theclient device 110 of the user 105 is currently tuned to the channel thatwill be playing the upcoming live media program of interest. If a clientdevice 110 of the user 105 is not connected to the media service 120when the upcoming live media program is scheduled to start with in thepredefined amount of time, the notification service 160 determineswhether a recording of the upcoming live media program is scheduled forthe user 105. For instance, the notification service 160 accesses theDVR schedule 165 to determine the recordings scheduled 196 for the user105. With reference to FIG. 2, the session module 230 provides to theaction module 240 that there is not a client device 110 of the user 105connected 238 to the media service 120. The action module 240 determineswhether a recording of the upcoming program of interest is scheduled 245for the user 105 based on the recordings scheduled 196 for the user 105.If a recording is scheduled for the upcoming live media program for theuser 105, the notification service 160 does not notify the user of theupcoming live media program. However, if a recording is not scheduledfor the upcoming live media program for the user 105, the action module240 of the notification service 160 causes a notification to betransmitted to a client device 110 of the user 105 that notifies theuser that the upcoming live media program is about to start 188. In anembodiment, the action module 240 of the notification service 160 mayautomatically schedule a recording 198 by sending a command to the DVRscheduler 170 to the schedule a recording for the upcoming live mediaprogram. The DVR functionality and recordings may be local to a clientdevice of the user 105 (e.g., incorporated in a set-top box of the user105) or may be centrally controlled and stored (e.g., in a network DVRin which a client device of the user 105 has access).

FIG. 3 is a flow diagram that illustrates exemplary operations fornotifying a user of an upcoming live media program according to anembodiment. The operations of FIGS. 3 and 4 will be described withrespect to the exemplary embodiment of FIGS. 1 and 2. However, it shouldbe understood that the exemplary embodiments of FIGS. 1 and 2 canperform operations different than that described with respect to FIGS. 3and 4; and the operations described with respect to FIGS. 3 and 4 can beperformed by different embodiments than those described with respect toFIGS. 1 and 2.

At operation 310, the analytics component 140 of the media service 120collects user consumption data of watching media programs of a user. Theuser consumption data may include data such as the watched media contentasset identifier, playback start time, playback stop time, playbackpause, playback stop, favorites made by the user, and any other actionperformed by the user via the media service 120; and may also includeinformation about the watched media such as genre, actors, director,writers, studio, etc. Prior to collecting the user consumption data, theuser has logged into the service (e.g., a client device such as aset-top box was powered and turned on, an application for the servicewas launched on a client device, etc.). Flow moves from operation 310 tooperation 315.

The analytics component 140 uses the collected user consumption data toautomatically determine programs of interest to the user. At operation315, the analytics component 140 of the media service 120 determinesthat an upcoming live media program is of interest to the user from thecollected user consumption data. The list of the determined program(s)of interest are stored in the media program of interest database 145. Aprogram of interest may be a program of a series in which the userregularly watches. As an example, if the user consumption data indicatesthat the user 105 watches the same TV program of a TV series every week,the analytics component 140 may determine that the TV program is ofinterest to the user. A program of interest may be a program of a genrein which the user regularly watches. For example, if the userconsumption data indicates that the user 105 regularly watches cookingcompetition shows, the analytics component 140 may determine that acooking competition show (which the user may or may not watch) is ofinterest to the user. As another example, if the user consumption dataindicates that the user 105 regularly watches a sporting event, theanalytics component 140 may determine that the sporting event is ofinterest to the user. A program of interest may be a program with anactor, director, and/or writer in which the user regularly watches. Forexample, if the user consumption data indicates that the user 105watches TV programs and/or movies with a particular actor with somefrequency, the analytics component 140 may determine that an upcomingprogram with that actor is a program of interest for the user 105. Itshould be understood that the operation of 315 may be performed whilethe user is logged into the media service 120 or while the user islogged out of the media service 120. Flow moves from operation 315 tooperation 320.

At operation 320, the notification service 160 determines whether theupcoming live media program is scheduled to start within a predefinedamount of time that serves as an indication that the program is about tostart. In an embodiment, the predefined amount of time is less than orequal to 1 minute. The notification service 160 uses the determinedprogram(s) of interest 190 and the schedule of media programs 192 whendetermining that the upcoming live media program is scheduled to startwithin a predefined amount of time that serves as an indication that theprogram is about to start. It should be understood that this operationis performed regardless of whether the user is logged in or out of themedia service 120. If the upcoming live media program is scheduled tostart within the predefined amount of time that serves as an indicationthat the program is about to start, flow moves to operation 325;otherwise flow continues to remain at operation 320 until an upcominglive media program is about to start.

At operation 325, the notification service 160 determines whether aclient device of the user is connected to the media service 120 thatprovides playback of the upcoming live media program. In an embodiment,connecting to the media service 120 occurs as a result of the user 105logging into the media service 120 and a session identifier is assignedfor the user that indicates an active connection to the media service120. Connecting to the media service 120 may include the establishmentof a persistent connection between a client device of the user and themedia service 120, such as a Websocket connection. In such anembodiment, the notification service 160 accesses the user sessioninformation 194 to determine whether a session identifier exists for theuser 105 that indicates whether a client device of the user is connectedto the media service 120. A client device that is connected to the mediaservice 120 may be an indication that the user 105 is currently watchinga media program. If a client device of the user 105 is connected to themedia service, then flow moves to operation 335; otherwise flow moves tooperation 330.

At operation 330 (a client device of the user 105 is not capable ofplayback of the upcoming live media program is not connected to themedia service 120), the notification service 160 determines whether arecording is scheduled for the live media program for the user. Forinstance, the notification service 160 accesses the DVR schedule 165 todetermine the recordings scheduled 196 for the user 105. If a recordingis scheduled for the upcoming live media program for the user, then flowmoves to operation 345 where the operations end. Thus, if a recording isscheduled for the upcoming live media program, then in an embodiment thenotification service 160 does not notify the user of the upcoming livemedia program. If a recording is not scheduled for the upcoming livemedia program for the user, then flow moves to operation 340 where thenotification service 160 causes a notification to be transmitted to theuser, where the notification indicates that the upcoming live mediaprogram is about to start.

The notification may be sent to one or more contact points of the user105 (which may be pre-established or configured by the user or service).For instance, the notification may be sent via: a text message (SMS orMMS message) to a contact point (e.g., phone number or email address) ofthe user 105; an email to an email address of the user 105; and/or anapplication that connects to the media service 120 such as anapplication on a mobile device (e.g., smartphone, tablet, wearabledevice).

The content of the notification may be different in differentembodiments and may be different depending on the client devicereceiving the notification. For example, in one embodiment, thenotification displays to the user that the show is about to start. Inanother embodiment, the notification includes an option for the user 105to initiate a recording of the upcoming live media program which, whenselected, causes the upcoming live media program to be recorded for theuser 105 (e.g., a command may be sent to the DVR scheduler 170 toschedule a recording for the upcoming live media program). In anotherembodiment, the notification includes an option for the user 105 to castthe upcoming live media program to a set-top box or other client deviceof the user 105, which when selected, causes the upcoming live mediaprogram to be played on the set-top box or other client device of theuser 105 (in a specific embodiment, which is described in more detailwith respect to FIG. 4, this option may be presented only if it isdetermined that the client device receiving the notification is inproximity to a client device capable of playing back the media program).

Flow moves from operation 340 to operation 350, which is optional in anembodiment, where the notification service 160 automatically causes themedia program to be recorded for the user 105. For example, thenotification service 160 may automatically schedule a recording 198 bysending a command to the DVR scheduler 170 to the schedule a recordingfor the upcoming live media program for the user 105. In such anembodiment, the notification to the user may indicate that a recordingis being scheduled for the user.

At operation 335, which is optional in an embodiment, the notificationservice 160 determines whether the connected client device of the useris tuned to the channel that will show the upcoming live media program.The user session information 194 may indicate what channel the user iscurrently tuned to. If the user is not tuned to the channel that willshow the upcoming live media program, then flow moves to operation 330.If the user is tuned to the channel that will show the upcoming livemedia program, then flow moves to operation 345 where operations end.

The order of operations of FIG. 3 are exemplary and can be performed ina different order in an embodiment. For instance, the notificationservice 160 may determine whether a recording is scheduled for a programof interest prior to determining whether a client device of the user isconnected to the media service 120 after it is determined that theprogram of interest is scheduled to start within the predefined amountof time that serves as an indication that the program is about to start.In such an embodiment, if a recording of the program of interest isscheduled, the notification service 160 will not notify the user thatthe upcoming program of interest is about to start; and if a recordingof the program of interest is not scheduled, the notification service160 then determines whether a client device of the user is connected tothe media service 120. As another example, the notification service 160may automatically cause the media program to be recorded in operation350 before, or without, causing a notification to be transmitted to theuser in operation 340.

The users of the service can benefit from timely real-time notificationsfrom the media service 120 if it appears that they may miss theirfavorite show, event, or other program of interest, without requiringthe user to proactively set reminders or schedule DVR recordings.

FIG. 4 is a flow diagram that illustrates exemplary operations fornotifying a user of an upcoming live media program according to anembodiment. The operations of FIG. 4 starts with the operation 325described with respect to FIG. 3. However, in the embodiment describedin FIG. 4, if the notification service 160 determines that a clientdevice of the user 105 is not connected to the media service 120, theflow moves from operation 325 to operation 410. At operation 410, thenotification service 160 determines whether a personal client device ofthe user is in proximity to a client device capable of playing theupcoming live media program such as a set-top box. In such a case, theuser 105 may be near their television set (for example), but simply hasforgotten that a show they are interested in is about to start. Apersonal client device may be a client device of the user 105 in whichthe user 105 typically carries with them such as a smartphone orwearable device; and such a device may not have the ability to play theupcoming live media program. The notification service 160 may determinewhether a personal client device of the user 105 is in proximity to theclient device capable of playing the upcoming live media program throughthe use of a wireless connection between the two devices. For instance,the devices may connect (when in range) via a Bluetooth (such as aBluetooth Low Energy (BTLE)) connection. The notification service 160may query the personal client device(s) of the user 105 to determinewhether they are wirelessly connected with the other client device. Inan alternative embodiment, the notification service 160 may query thepersonal client device(s) of the user 105 for their location (e.g.,through Global Positioning System (GPS), Wi-Fi based positioning system)and compare the reported location against the address of the user 105 todetermine whether the personal client device is in proximity to a clientdevice that is capable of playing the upcoming live media program. If apersonal client device of the user 105 is not in proximity to anotherclient device that is capable of playing the upcoming live mediaprogram, then flow moves to operation 330 of FIG. 3; however, if apersonal client device of the user 105 has been determined to be inproximity to another client device of the user 105 that is capable ofplaying the upcoming live media program, then flow moves to operation415. A

At operation 415, the notification service 160 causes a notification tobe transmitted to the personal client device in proximity with the otherclient device, where the notification includes an option for the user105 to cast the upcoming live media program to the client device that iscapable of playing the upcoming live media program. Upon selection ofthe user to cast the upcoming live media program, a message is sent tothe media service 120 to begin playing the upcoming live media programon the other client device of the user 105 and the media service 120 inturn causes that client device to play that upcoming live media program.

FIG. 5 illustrates a block diagram for an exemplary data processingsystem 500 that may be used in some embodiments. Data processing system500 includes one or more microprocessors 505 and connected systemcomponents (e.g., multiple connected chips). Alternatively, the dataprocessing system 500 is a system on a chip. One or more such dataprocessing systems 500 may be utilized to implement the functionality ofa client device 110 and/or a server of the media service 120. The dataprocessing system 500 includes memory 510, which is coupled to themicroprocessor(s) 505. The memory 510 may be used for storing data,metadata, and programs for execution by the microprocessor(s) 505; that,when executed by the microprocessor(s) 505, causes the data processingsystem 500 to perform the operations described herein. The memory 510may include one or more of volatile and non-volatile memories, such asRandom Access Memory (“RAM”), Read Only Memory (“ROM”), a solid statedisk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of datastorage. The memory 510 may be internal or distributed memory. A displaycontroller and display device 520 provides a visual user interface forthe user, e.g., GUI elements or windows.

The data processing system 500 also includes one or more input or output(“I/O”) devices and interfaces 525, which are provided to allow a userto provide input to, receive output from, and otherwise transfer data toand from the system. These I/O devices 525 may include a mouse, keypad,keyboard, a touch panel or a multi-touch input panel, camera, opticalscanner, network interface, modem, other known I/O devices or acombination of such I/O devices. The touch input panel may be a singletouch input panel which is activated with a stylus or a finger or amulti-touch input panel which is activated by one finger or a stylus ormultiple fingers, and the panel is capable of distinguishing between oneor two or three or more touches and is capable of providing inputsderived from those touches to the processing system 500.

The I/O devices and interfaces 525 may also include a connector for adock or a connector for a USB interface, FireWire, Thunderbolt,Ethernet, etc., to connect the system 500 with another device, externalcomponent, or a network. Exemplary I/O devices and interfaces 525 alsoinclude wireless transceivers, such as an IEEE 802.11 transceiver, aninfrared transceiver, a Bluetooth transceiver, a wireless cellulartelephony transceiver (e.g., 2G, 3G, 4G), or another wireless protocolto connect the data processing system 500 with another device, externalcomponent, or a network and receive stored instructions, data, tokens,etc. It will be appreciated that one or more buses may be used tointerconnect the various components shown in FIG. 5.

It will be appreciated that additional components, not shown, may alsobe part of the system 500, and, in certain embodiments, fewer componentsthan that shown in FIG. 5 may also be used in a data processing system500. For example, in some embodiments where the data processing system500 is a set top box, the set top box may include components such as adigital broadcast receiver (e.g., satellite dish receiver, radiofrequency (RF) receiver, microwave receiver, multicast listener, etc.)and/or a tuner that tunes to appropriate frequencies or addresses ofreceived content. For example, a tuner may be configured to receivedigital broadcast data in a particularized format, such as MPEG-encodeddigital video and audio data, as well as digital data in many differentforms, including software programs and programming information in theform of data files. As another example, the set top box may include akey listener unit to receive authorization and/or session keystransmitted from a server. The keys received by listener unit may beused by cryptographic security services implemented in a protectionmechanism in the set top box to enable decryption of the session keysand data.

The techniques shown in the figures can be implemented using code anddata stored and executed on one or more electronic devices (e.g., anevent device, a hub device, an action device). Such electronic devicesstore and communicate (internally and/or with other electronic devicesover a network) code and data using computer-readable media, such asnon-transitory computer-readable storage media (e.g., magnetic disks;optical disks; random access memory; read only memory; flash memorydevices; phase-change memory) and transitory computer-readablecommunication media (e.g., electrical, optical, acoustical or other formof propagated signals—such as carrier waves, infrared signals, digitalsignals). In addition, such electronic devices typically include a setof one or more processors coupled to one or more other components, suchas one or more storage devices (non-transitory computer-readable storagemedia), user input/output devices (e.g., a keyboard, a touchscreen,and/or a display), and network connections. The coupling of the set ofprocessors and other components is typically through one or more bussesand bridges (also termed as bus controllers). Thus, the storage deviceof a given electronic device typically stores code and/or data forexecution on the set of one or more processors of that electronicdevice. Of course, one or more parts of an embodiment of the inventionmay be implemented using different combinations of software, firmware,and/or hardware.

While the flow diagrams in the figures show a particular order ofoperations performed by certain embodiments of the invention, it shouldbe understood that such order is exemplary (e.g., alternativeembodiments may perform the operations in a different order, combinecertain operations, overlap certain operations, etc.).

While the invention has been described in terms of several embodiments,those skilled in the art will recognize that the invention is notlimited to the embodiments described, can be practiced with modificationand alteration within the spirit and scope of the appended claims. Thedescription is thus to be regarded as illustrative instead of limiting.

1. A method for providing a notification of an upcoming live mediaprogram to a user, comprising: determining that the upcoming live mediaprogram is scheduled to start within a predefined amount of time thatserves as an indication that the upcoming live media program is about tostart, wherein the upcoming live media program has been automaticallydetermined to be of interest to the user; responsive to determining thatthe upcoming live media program is scheduled to start within thepredefined amount of time, determining that a client device of the useris not connected to a service providing playback of the upcoming livemedia program, wherein the upcoming live media program is one of aplurality of live media programs in which the service provides playbackacross a plurality of channels; responsive to determining that theclient device of the user is not connected to the service providingplayback of the upcoming live media program, determining that theupcoming live media program is not currently scheduled to be recordedfor the user; and responsive to determining that the upcoming live mediaprogram is not currently scheduled to be recorded for the user, causingthe notification to be transmitted to the user, wherein the notificationindicates that the upcoming live media program is about to start.
 2. Themethod of claim 1, wherein the notification to be transmitted to theuser includes an option for the user to initiate a recording of theupcoming live media program which, when selected, causes the upcominglive media program to be recorded for the user.
 3. The method of claim1, further comprising: determining that a personal client device of theuser is located in proximity to the client device that is capable ofplaying the upcoming live media program; and wherein the notification tobe transmitted to the user includes transmitting a notification to thepersonal client device of the user that includes an option for the userto cast the upcoming live media program to the client device that islocated in proximity to the user.
 4. The method of claim 1, furthercomprising: automatically causing the upcoming live media program to berecorded for the user responsive to determining that the upcoming livemedia program is not currently scheduled to be recorded for the user. 5.The method of claim 1, wherein the upcoming live media program has beenautomatically determined to be of interest to the user based on mediaconsumption data of the user.
 6. The method of claim 1, whereindetermining that the client device of the user is not connected to theservice providing playback of the upcoming live media program includesdetermining that an active web socket connection does not exist betweenthe client device of the user and the service providing playback of theupcoming live media program.
 7. A server for providing a notification ofan upcoming live media program to a user, comprising: a non-transitorycomputer-readable storage medium to store code; and a set of one or moreprocessors coupled with the non-transitory computer-readable storagemedium, operative to execute the code, to: determine that the upcominglive media program is scheduled to start within a predefined amount oftime that serves as an indication that the upcoming live media programis about to start, wherein the upcoming live media program has beenautomatically determined to be of interest to the user; responsive to adetermination that the upcoming live media program is scheduled to startwithin the predefined amount of time, determine that a client device ofthe user is not connected to a service providing playback of theupcoming live media program, wherein the upcoming live media program isone of a plurality of live media programs in which the service iscapable of providing playback across a plurality of channels; responsiveto a determination that the client device of the user is not connectedto the service providing playback of the upcoming live media program,determine that the upcoming live media program is not currentlyscheduled to be recorded for the user; and responsive to a determinationthat the upcoming live media program is not currently scheduled to berecorded for the user, cause the notification to be transmitted to theuser, wherein the notification indicates that the upcoming live mediaprogram is about to start.
 8. The server of claim 7, wherein thenotification to be transmitted to the user is to include an option forthe user to initiate a recording of the upcoming live media programwhich, when selected, causes the upcoming live media program to berecorded for the user.
 9. The server of claim 7, wherein the server isfurther operative to execute code to: determine that a personal clientdevice of the user is located in proximity to the client device that iscapable of playing the upcoming live media program; and wherein thenotification to be transmitted to the user is to include a transmissionof a notification to the personal client device of the user thatincludes an option for the user to cast the upcoming live media programto the client device that is located in proximity to the user.
 10. Theserver of claim 7, wherein the server is further operative to executecode to: automatically cause the upcoming live media program to berecorded for the user responsive to determining that the upcoming livemedia program is not currently scheduled to be recorded for the user.11. The server of claim 7, wherein the upcoming live media program hasbeen automatically determined to be of interest to the user based onmedia consumption data of the user.
 12. The server of claim 7, whereinthe determination that the client device of the user is not connected tothe service providing playback of the upcoming live media programincludes a determination that an active web socket connection does notexist between the client device of the user and the service providingplayback of the upcoming live media program.
 13. A non-transitorycomputer-readable storage medium having computer code stored therein,which when executed by a processor, causes the processor to performoperations for providing a notification of an upcoming live mediaprogram to a user, comprising: determining that the upcoming live mediaprogram is scheduled to start within a predefined amount of time thatserves as an indication that the upcoming live media program is about tostart, wherein the upcoming live media program has been automaticallydetermined to be of interest to the user; responsive to determining thatthe upcoming live media program is scheduled to start within thepredefined amount of time, determining that a client device of the useris not connected to a service providing playback of the upcoming livemedia program, wherein the upcoming live media program is one of aplurality of live media programs in which the service provides playbackacross a plurality of channels; responsive to determining that theclient device of the user is not connected to the service providingplayback of the upcoming live media program, determining that theupcoming live media program is not currently scheduled to be recordedfor the user; and responsive to determining that the upcoming live mediaprogram is not currently scheduled to be recorded for the user, causingthe notification to be transmitted to the user, wherein the notificationindicates that the upcoming live media program is about to start. 14.The non-transitory computer-readable storage medium of claim 13, whereinthe notification to be transmitted to the user includes an option forthe user to initiate a recording of the upcoming live media programwhich, when selected, causes the upcoming live media program to berecorded for the user.
 15. The non-transitory computer-readable storagemedium of claim 13, wherein the non-transitory computer-readable storagemedium further stores code that, when executed by the processor, causethe processor to perform operations including: determining that apersonal client device of the user is located in proximity to the clientdevice that is capable of playing the upcoming live media program; andwherein the notification to be transmitted to the user includestransmitting a notification to the personal client device of the userthat includes an option for the user to cast the upcoming live mediaprogram to the client device that is located in proximity to the user.16. The non-transitory computer-readable storage medium of claim 13,wherein the non-transitory computer-readable storage medium furtherstores code that, when executed by the processor, cause the processor toperform operations including: automatically causing the upcoming livemedia program to be recorded for the user responsive to determining thatthe upcoming live media program is not currently scheduled to berecorded for the user.
 17. The non-transitory computer-readable storagemedium of claim 13, wherein the upcoming live media program has beenautomatically determined to be of interest to the user based on mediaconsumption data of the user.
 18. The non-transitory computer-readablestorage medium of claim 13, wherein determining that the client deviceof the user is not connected to the service providing playback of theupcoming live media program includes determining that an active websocket connection does not exist between the client device of the userand the service providing playback of the upcoming live media program.